iT邦幫忙

2024 iThome 鐵人賽

DAY 10
2
Security

Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑系列 第 10

Day10 - 比 NFT 更有實用價值的 NFC 數位魔法與科技財富

  • 分享至 

  • xImage
  •  

Day10 - 比 NFT 更有實用價值的 NFC 數位魔法與科技財富

NFC
圖片來源:https://docs.flipper.net/nfc

前言

嗨各位,我是 Kazma。
前兩天跟大家介紹了 Flipper Zero 的 RFID,但大家真的知道 RFID 跟 NFC 有哪些差別嗎,今天我們先來介紹這兩者之間的差異,接著就來跟大家介紹今天的主角 NFC 吧。

資安倫理宣導

請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。

RFID vs NFC

RFID(Radio Frequency Identification)

範圍較廣,根據使用頻率跟功率,讀取範圍可以從幾公分到幾十公尺不等。低頻(LF)和高頻(HF)RFID 通常能達到幾十公分,而超高頻(UHF)RFID 則可以達到數公尺甚至數十公尺。而且 RFID 主要是單向傳輸,即 RFID Tag 跟讀取器之間的單向傳輸。頻率的部分,RFID 可以在多種頻率下工作。常見的有低頻(125-134 kHz)、高頻(13.56 MHz)和超高頻(860-960 MHz)。

NFC(Near Field Communication)

NFC 通常範圍非常短不會超過十公分。主要是為了確保安全性以及避免干擾。NFC 可以進行雙向通訊,這意味著兩個 NFC 設備之間可以互相發送和接收資料,這使其適合用於如行動支付或資料分享等應用。頻率的部分,NFC 只在 13.56 MHz 的高頻範圍內工作,這與某些高頻 RFID 系統相同。

NFC Menu

menu
圖片來源:https://docs.flipper.net/nfc
比較值得一提的是 Flipper 可以透過 Detect Reader 的功能去模擬一張 NFC 卡片去嘗試透過跟 Reader 交互獲得資料。
Extra Actions 的功能有很多後面會一一介紹。

NFC hardware

Flipper Zero 有內建基於 ST25R3916 NFC 晶片和 13.56 MHz 的高頻率天線模組,如下圖:
hw1
圖片來源:https://docs.flipper.net/nfc
其中 13.56 MHz 的高頻率天線就在 RFID 天線的旁邊:
next
圖片來源:https://docs.flipper.net/nfc

Reading

reading
圖片來源:https://docs.flipper.net/nfc
NFC 跟 RFID 一樣都是一種 transponder 可以自動傳輸資料,根據不同的卡片種類,資料可能會被分割成 sectors, pages, applications 等不同的資料型態。

NFC cards type A

MIFARE Classic®

mifare
圖片來源:https://docs.flipper.net/nfc
Flipper Zero 支援讀取 MIFARE Classic 1K、4K 以及 Mini 卡片。每張卡片都由多個扇區組成,每個扇區受一個或多個密鑰保護。為了能夠成功讀取卡片上的數據,Flipper Zero 需要找到對應的密鑰。比如,在 MIFARE Classic 1K 卡片上,Flipper Zero 需要找到 32 個密鑰來讀取 16 個扇區的數據。對於 MIFARE Classic 4K 和 Mini 卡片,這些數字分別是 80 個密鑰和 10 個密鑰。

Flipper Zero 會嘗試使用內建的系統字典中的密鑰來讀取數據,但如果預設密鑰無法解鎖卡片的扇區,用戶還可以通過以下步驟添加自己的密鑰到使用者字典:
Main Menu -> NFC -> Extra Actions -> MIFARE Classic Keys

當 Flipper Zero 讀取 MIFARE Classic 卡片時,原始數據會被存儲在設備的記憶體中。如果我們透過 Flipper Mobile App 或 Flipper Zero 本身進行模擬並修改數據,這些更改會生成一個新的 Shadow File,這代表了卡片數據的新狀態。然而,這也會導致 Flipper Zero 上的數據與實體卡片之間產生不同步的情況。

為了解決這種不同步,當你希望將 Flipper Zero 上的數據同步到實體卡片時,可以使用 Write To Initial Card 功能。這個功能會將 Flipper Zero 中的新數據寫入到原本的實體卡片上,確保兩者數據一致。

同樣地,如果實體卡片在與讀卡器互動後其數據發生了變更,這會導致實體卡與 Flipper Zero 內的數據不同步。此時,你可以使用 Update From Initial Card 功能來從實體卡片同步更新 Flipper Zero 內的數據,確保其保持一致。

如果你希望放棄所有修改並恢復原始數據,則可以使用 Restore to original 功能,這會刪除 Flipper Zero 中的 shadow,恢復到最初的狀態,參考下圖:
sync
圖片來源:https://docs.flipper.net/nfc

MIFARE® DESFire®

這類的卡片則是以 applications 跟數個檔案的方式進行資料儲存和管理,對於這種卡片 Flipper 只能模擬 UID。
fire
圖片來源:https://docs.flipper.net/nfc

Unknown cards

unknown
圖片來源:https://docs.flipper.net/nfc
未知的卡片掃描完上面會寫未知,同時我們也只能用 Flipper 只能模擬他的 UID 而已。

NFC cards type V

ICODE® SLIX

這種類型的卡片則是以 blocks 進行資料儲存,如下圖:
block
圖片來源:https://docs.flipper.net/nfc
這種卡我們除了 UID 還可以模擬他的資料。

Unknown cards

unknownv
圖片來源:https://docs.flipper.net/nfc
對於無法識別的 NFC-V 卡片,我們還是可以儲存跟模擬 UID 跟資料

NFC cards type F

FeliCa™ Lite-S

felica
圖片來源:https://docs.flipper.net/nfc
這種卡我們可以讀取和模擬他的資料,而且還有 Manufactute ID (IDm), Manufacture parameter (PMm) 等資訊也可以讀取和模擬。
另外值得一提的是,你們會發現上面的圖片只有讀取 26/28 blocks 的資料,還是代表讀取成功,主要是因為這種卡片的特性。如果少於 26 的話代表我們需要使用 Unlock 功能手動輸入 16-bit 的 manufacturer key。

NFC cards type B

ST25TB

st25tb
圖片來源:https://docs.flipper.net/nfc
Flipper 可以讀取和模擬 UID 跟資料,支援下面這幾種 types:

  • ST25TB512
  • ST25TB512-AC
  • SRIX512
  • ST25TB02K
  • ST25TB04K
  • SRIX4K
    不在上面的 type B 我們只能顯示 UID 在螢幕上不能儲存。

Reading a specific card type

除了上面的類型以外,NFC 也有可能包含混合型的 type,例如 V 型卡可以跟 MIFARE Classic 混合出現,我們需要透過以下步驟識別我們的卡片類別:
Main Menu -> NFC -> Extra Actions -> Read Specific Card Type

按讚訂閱收藏小鈴噹叮叮叮

OK 感受到 RFID 跟 NFC 的不同了嗎,光是卡片種類就分這麼多,我們明天再來跟各位繼續介紹有關 NFC 的更多知識吧。各位明天見!


上一篇
Day09 - 千變萬化的 T5577 無限複製術
下一篇
Day11 - 誰說要卡才能進?MFKey32 攻擊讓你無卡也能破解門禁!
系列文
Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言